﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PGI.EN.Anulacion;
using PGI.LN.Anulacion;

namespace PGI.WF
{
    public partial class FrmAnulacionVentas : Form
    {
        public int MovimientoID = 0;

        public FrmAnulacionVentas()
        {
            InitializeComponent();
        }

        private void FrmAnulacionVentas_Load(object sender, EventArgs e)
        {
            DateTime fechaActual = DateTime.Now;
            List<AnulacionEn> lstMovimientos = new List<AnulacionEn>();

            lstMovimientos = AnulacionLn.Movimientos_Anulaciones(2, fechaActual.ToString("yyyyMMdd"), fechaActual.ToString("yyyyMMdd"));

            dgwAnulaVentas.DataSource = lstMovimientos;
            dgwAnulaVentas.Columns[0].Visible = false;

        }

        private void FrmAnulacionVentas_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
                btnCerrar_Click(sender, e);

            if (e.KeyCode == Keys.F1)
                btnAnularVenta_Click(sender, e);
        }

        private void FrmAnulacionVentas_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (!this.IsDisposed)
            {
                DialogResult dr = MessageBox.Show(this, "¿Desea salir de la ventana sin guardar cambios?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dr == DialogResult.Yes)
                    this.Dispose();
                else
                    e.Cancel = true;
            }
        }

        private void btnAnularVenta_Click(object sender, EventArgs e)
        {            
            DialogResult dr = MessageBox.Show(this, "¿Desea realizar la anulación de esta Venta?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dr == DialogResult.Yes)
            {
                try
                {
                    int respAnula = AnulacionLn.Anular(MovimientoID);

                    if (respAnula > 0)
                    {
                        MessageBox.Show(this, "Eliminación realizada exitosamente.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        FrmAnulacionVentas_Load(sender, e);
                    }
                    else
                    {
                        MessageBox.Show(this, "Se ha presentaado un error al insertar.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                }
                catch(Exception ex)
                {
                    throw ex;
                }
            }

        }

        private void btnCerrar_Click(object sender, EventArgs e)
        {
            DialogResult dr = MessageBox.Show(this, "¿Desea salir de la ventana sin guardar cambios?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (dr == DialogResult.Yes)
                this.Dispose();
        }


        private void dgwAnulaVentas_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex != -1)
            {
                MovimientoID = Convert.ToInt32(dgwAnulaVentas.Rows[e.RowIndex].Cells[0].Value);                
            }
            else
            {
                MessageBox.Show(this, "Debe seleccionar un elemento a ser eliminado.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void dgwAnulaVentas_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            dgwAnulaVentas.ClearSelection();
            MovimientoID = 0;
        }

    }
}
